﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ХарактерВыплатыПоДоговору
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"158708f4-af55-4701-9f8e-9a3917e2467f\", \"Представление\":\"ОднократноВКонцеСрока\"}")]
		ОднократноВКонцеСрока = 0,//Однократно в конце срока
		[EnumMember(Value = "{\"Ссылка\":\"48c9408f-9dbe-4960-9026-54664ea6b295\", \"Представление\":\"Ежемесячно\"}")]
		Ежемесячно = 1,
	}
	public static partial class ХарактерВыплатыПоДоговору_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОднократноВКонцеСрока = new Guid("399a8e9f-e217-7f46-4701-af55158708f4");//Однократно в конце срока
		public static readonly Guid Ежемесячно = new Guid("66542690-a64e-95b2-4960-9dbe48c9408f");
		public static ХарактерВыплатыПоДоговору Получить(this ХарактерВыплатыПоДоговору Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ХарактерВыплатыПоДоговору Получить(this ХарактерВыплатыПоДоговору Значение, Guid Ссылка)
		{
			if(Ссылка == ОднократноВКонцеСрока)
			{
				return ХарактерВыплатыПоДоговору.ОднократноВКонцеСрока;
			}
			else if(Ссылка == Ежемесячно)
			{
				return ХарактерВыплатыПоДоговору.Ежемесячно;
			}
			return ХарактерВыплатыПоДоговору.ПустаяСсылка;
		}
		public static byte[] Ключ(this ХарактерВыплатыПоДоговору Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ХарактерВыплатыПоДоговору Значение)
		{
			switch (Значение)
			{
				case ХарактерВыплатыПоДоговору.ОднократноВКонцеСрока: return ОднократноВКонцеСрока;
				case ХарактерВыплатыПоДоговору.Ежемесячно: return Ежемесячно;
			}
			return Guid.Empty;
		}
	}
}